1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# PICT Drawing Opcodes Version 1
| Opcode | Name | Description | Size (in bytes) of additional data |
| ------ | --------------- | ---------------------------------------------- | ---------------------------------------- |
| $00 | NOP | No operation | 0 |
| $01 | ClipRgn | Clipping region | Region size |
| $02 | BkPat | Background pattern | 8 |
| $03 | TxFont | Font number for text (Integer) | 2 |
| $04 | TxFace | Text’s font style (0..255) | 1 |
| $05 | TxMode | Source mode (Integer) | 2 |
| $06 | SpExtra | Extra space (Fixed) | 4 |
| $07 | PnSize | Pen size (Point) | 4 |
| $08 | PnMode | Pen mode (Integer) | 2 |
| $09 | PnPat | Pen pattern | 8 |
| $0A | FillPat | Fill pattern | 8 |
| $0B | OvSize | Oval size (Point) | 4 |
| $0C | Origin | dh (Integer), dv (Integer) | 4 |
| $0D | TxSize | Text size (Integer) | 2 |
| $0E | FgColor | Foreground color (Long) | 4 |
| $0F | BkColor | Background color (Long) | 4 |
| $10 | TxRatio | Numerator (Point), denominator (Point) | 8 |
| $11 | picVersion | Version (0..255) | 1 |
| $20 | Line | pnLoc (Point), newPt (Point) | 8 |
| $21 | LineFrom | newPt (Point) | 4 |
| $22 | ShortLine | pnLoc (Point), dh (–128..127), dv (–128..127) | 6 |
| $23 | ShortLineFrom | dh (–128..127), dv (–128..127) | 2 |
| $28 | LongText | txLoc (Point), count (0..255), text | 5 + text |
| $29 | DHText | dh (0..255), count (0..255), text | 2 + text |
| $2A | DVText | dv (0..255), count (0..255), text | 2 + text |
| $2B | DHDVText | dh (0..255), dv (0..255), count (0..255), text | 3 + text |
| $30 | frameRect | Rectangle (Rect) | 8 |
| $31 | paintRect | Rectangle (Rect) | 8 |
| $32 | eraseRect | Rectangle (Rect) | 8 |
| $33 | invertRect | Rectangle (Rect) | 8 |
| $34 | fillRect | Rectangle (Rect) | 8 |
| $38 | frameSameRect | Rectangle (Rect) | 0 |
| $39 | paintSameRect | Rectangle (Rect) | 0 |
| $3A | eraseSameRect | Rectangle (Rect) | 0 |
| $3B | invertSameRect | Rectangle (Rect) | 0 |
| $3C | fillSameRect | Rectangle (Rect) | 0 |
| $40 | frameRRect | Rectangle (Rect)\* | 8 |
| $41 | paintRRect | Rectangle (Rect)\* | 8 |
| $42 | eraseRRect | Rectangle (Rect)\* | 8 |
| $43 | invertRRect | Rectangle (Rect)\* | 8 |
| $44 | fillRRect | Rectangle (Rect)\* | 8 |
| $48 | frameSameRRect | Rectangle (Rect) | 0 |
| $49 | paintSameRRect | Rectangle (Rect) | 0 |
| $4A | eraseSameRRect | Rectangle (Rect) | 0 |
| $4B | invertSameRRect | Rectangle (Rect) | 0 |
| $4C | fillSameRRect | Rectangle (Rect) | 0 |
| $50 | frameOval | Rectangle (Rect) | 8 |
| $51 | paintOval | Rectangle (Rect) | 8 |
| $52 | eraseOval | Rectangle (Rect) | 8 |
| $53 | invertOval | Rectangle (Rect) | 8 |
| $54 | fillOval | Rectangle (Rect) | 8 |
| $58 | frameSameOval | Rectangle (Rect) | 0 |
| $59 | paintSameOval | Rectangle (Rect) | 0 |
| $5A | eraseSameOval | Rectangle (Rect) | 0 |
| $5B | invertSameOval | Rectangle (Rect) | 0 |
| $5C | fillSameOval | Rectangle (Rect) | 0 |
| $60 | frameArc | Rectangle (Rect), startAngle, arcAngle | 12 |
| $61 | paintArc | Rectangle (Rect), startAngle, arcAngle | 12 |
| $62 | eraseArc | Rectangle (Rect), startAngle, arcAngle | 12 |
| $63 | invertArc | Rectangle (Rect), startAngle, arcAngle | 12 |
| $64 | fillArc | Rectangle (Rect), startAngle, arcAngle | 12 |
| $68 | frameSameArc | Rectangle (Rect) | 4 |
| $69 | paintSameArc | Rectangle (Rect) | 4 |
| $6A | eraseSameArc | Rectangle (Rect) | 4 |
| $6B | invertSameArc | Rectangle (Rect) | 4 |
| $6C | fillSameArc | Rectangle (Rect) | 4 |
| $70 | framePoly | Polygon (Poly) | Polygon size |
| $71 | paintPoly | Polygon (Poly) | Polygon size |
| $72 | erasePoly | Polygon (Poly) | Polygon size |
| $73 | invertPoly | Polygon (Poly) | Polygon size |
| $74 | fillPoly | Polygon (Poly) | Polygon size |
| $78 | frameSamePoly | (Not yet implemented) | 0 |
| $79 | paintSamePoly | (Not yet implemented) | 0 |
| $7A | eraseSamePoly | (Not yet implemented) | 0 |
| $7B | invertSamePoly | (Not yet implemented) | 0 |
| $7C | fillSamePoly | (Not yet implemented) | 0 |
| $80 | frameRgn | Region (Rgn) | Region size |
| $81 | paintRgn | Region (Rgn) | Region size |
| $82 | eraseRgn | Region (Rgn) | Region size |
| $83 | invertRgn | Region (Rgn) | Region size |
| $84 | fillRgn | Region (Rgn) | Region size |
| $88 | frameSameRgn | (Not yet implemented) | 0 |
| $89 | paintSameRgn | (Not yet implemented) | 0 |
| $8A | eraseSameRgn | (Not yet implemented) | 0 |
| $8B | invertSameRgn | (Not yet implemented) | 0 |
| $8C | fillSameRgn | (Not yet implemented) | 0 |
| $90 | BitsRect | CopyBits with clipped rectangle | Variable†‡; see Listing A-2 on page A-17 |
| $91 | BitsRgn | CopyBits with clipped region | Variable†‡; see Listing A-3 on page A-18 |
| $98 | PackBitsRect | Packed CopyBits with clipped rectangle | Variable†; see Listing A-2 on page A-17 |
| $99 | PackBitsRgn | Packed CopyBits with clipped rectangle | Variable†; see Listing A-3 on page A-18 |
| $A0 | ShortComment | Kind (Integer) | 2 |
| $A1 | LongComment | Kind (Integer), size (Integer), data | 4 + data |
| $FF | EndOfPicture | End of picture | 0 |